/**
 * 
 */
package com.vanstone.imgapp.common.ds;

import com.vanstone.common.debug.MyAssert;

/**
 * 数据源Holder
 * 
 * @author shipeng
 */
public class DataSourceHolder {

  private static final ThreadLocal<DS> DS_HOLDER = new ThreadLocal<>();

  /**
   * 获取当前数据源
   * 
   * @return
   */
  public static DS getCurrentDS() {
    DS currentDs = DS_HOLDER.get();
    if (currentDs != null) {
      return currentDs;
    }
    return DS.WITHYOU;
  }

  /**
   * 设定数据源
   * 
   * @param ds
   */
  public static void set(DS ds) {
    MyAssert.notNull(ds);
    DS_HOLDER.set(ds);
  }

  /**
   * 清理数据源
   */
  public static void clear() {
    DS_HOLDER.remove();
  }

  /**
   * 切换到SB数据源
   */
  public static void switchSB() {
    set(DS.WITHYOU);
  }

  /**
   * 切换到AccessToken数据源
   */
  public static void switchWithyouID() {
    set(DS.WITHYOU_ID);
  }

  /**
   * 切换到默认数据源
   */
  public static void switchDefault() {
    set(DS.WITHYOU);
  }

}
